#ifndef _NE_SUB_SKIN_H_
#define _NE_SUB_SKIN_H_

#include <graphics/SubMesh.h>

namespace ne
{
    class NEAPI SubSkin : public Object
    {
        public:
            explicit SubSkin(const std::string &name);

            size_t getSize() const;

            void setSubMesh(const SubMeshPtr &pSubMesh);

            SubMeshPtr getSubMesh() const;

            void setIndexData(const IndexDataPtr &pIndexData);

            IndexDataPtr getIndexData() const;

            void setMaterial(const MaterialPtr &pMaterial);

            MaterialPtr getMaterial() const;

            virtual ~SubSkin();

        private:
            SubMeshPtr mpSubMesh;
            MaterialPtr mpMaterial;
    };

    typedef SharedPtr<SubSkin> SubSkinPtr;

    typedef std::map<std::string, SubSkinPtr> SubSkinMap;
    typedef SubSkinMap::iterator SubSkinMapIterator;
    typedef SubSkinMap::const_iterator SubSkinMapConstIterator;
}

#endif
